import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * @Description杨辉三角
 */

public class Test {
    public static List<List<Integer>> generate(int numRows){
        List<List<Integer>> ret = new ArrayList<>();

        List<Integer> List0 = new ArrayList<>();
        List0.add(1);//第一行的元素1
        ret.add(List0);


        for (int i = 1; i < numRows; i++) {
            List<Integer> tmpList = new ArrayList<>();//剩下一行
            //第一个元素
            tmpList.add(1);
            //获取上一行的元素
            List<Integer> prevRow = ret.get(i-1);
            //当前行中间的值3
            for(int j = 1;j<i;j++){
                int val1 = prevRow.get(j);
                int val2 = prevRow.get(j-1);
                int val = val1+val2;
                tmpList.add(val);
            }
            //获取最后一行元素
            tmpList.add(1);
            ret.add(tmpList);


        }
        return ret;


    }
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int pos = scanner.nextInt();
        List<List<Integer>> ret = generate(pos);
        System.out.println(ret);

    }
}
